import common from './common';
/*正则*/
export default {
	//是否数字
	isNum: function(str, name) {
		var res = this.isNull(str, name);
		if (!res) return false;
		var reg = /^[0-9]+([.][0-9]+){0,1}$/;
		if (!reg.test(str)) {
			common.showTip('请输入数字' + name, 'none');
			return false;
		}
		return true;

	},
	//不为空
	isNull: function(str, mas) {
		if (str == null || str.length == 0) {
			common.showTip(mas + "不能为空", 'none');
			return false;
		}
		return true;
	},
	// 中文
	isChinese: function(str, name, is) {
		var res = this.isNull(str, name);
		if (!res) return false;
		var reg = /^[\u0391-\uFFE5]+$/;
		if (!reg.test(str)) {
			common.showTip('请输入中文-' + name, 'none');
			return false;
		}
		return true;
	},
	// 字母
	isEn: function(str, name, is) {
		var res = this.isNull(str, name);
		if (!res) return false;
		var reg = /^[A-Za-z]+$/;
		if (!reg.test(str)) {
			common.showTip('请输入字母-' + name, 'none');
			return false;
		}
		return true;
	},
	//手机
	//手机
	isTel: function(str, showTip = true) {
		var res = this.isNull(str, '手机号码');
		if (!res) return false;
		var reg = /^1[3456789][0-9]{9}$/;
		if (!reg.test(str)) {
			if (showTip) {
				common.showTip('手机号码格式错误', 'none');
			};
			return false;
		}
		return true;
	},
	//邮箱
	isEmail: function(str, showTip = true) {
		var res = this.isNull(str, '邮箱');
		if (!res) return false;
		var reg = /^[a-zA-Z0-9_-]+@([a-zA-Z0-9]+\.)+(com|cn|net|org)$/;
		if (!reg.test(str)) {
			if (showTip) {
				common.showTip('邮箱格式错误', 'none', );
			};
			return false;
		}
		return true;

	},
	//身份证
	isIdCard: function(str) {
		var res = this.isNull(str, '身份证');
		if (!res) return false;
		var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
		if (!reg.test(str)) {
			common.showTip('身份证格式错误', 'none');
			return false;
		}
		return true;
	},
	//微信号
	isWxNum: function(str) {
		var res = this.isNull(str, '微信号');
		if (!res) return false;
		var reg = /^[a-zA-Z\d_]{5,}$/;
		if (!reg.test(str)) {
			common.showTip('微信号格式错误', 'none');
			return false;
		}
		return true;
	},
	//密码
	isPassWord(str) {

		var res = this.isNull(str, '密码');
		if (!res) return false;
		var reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$/;
		if (!reg.test(str)) {
			common.showTip('密码必须由6-16位数字加字母组成', 'none');
			return false;
		}
		return true;
	},
	//银行卡
	isBankCard(str) {
		var res = this.isNull(str, '银行卡');
		if (!res) {
			return false;
		}
		if (str.length < 16 || str.length > 19) {
			common.showTip('银行卡号长度必须在16到19之间', 'none');
			return false;
		}
		var num = /^\d*$/; //全数字
		if (!num.exec(str)) {
			common.showTip('银行卡号必须全为数字', 'none');
			return false;
		}
		//开头6位
		var strBin =
			"10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99";
		if (strBin.indexOf(str.substring(0, 2)) == -1) {
			common.showTip('银行卡号开头6位不符合规范', 'none');
			return false;
		}

		//'/^([1-9]{1})(\d{15}|\d{18})$/'
		return true;
	},
	// 邮箱转*
	hideEmail(email) {
		if (String(email).indexOf('@') > 0) {
			let str = email.split('@');
			let _s = '';
			let new_email = "";
			let com = str[1].split('.');
			let com_str = com[0];
			let _c = '';
			for (let j = 1; j < com[0].length; j++) {
				_c += '*'
			};
			
			if (str[0].length > 3) { //@前面多于3位
				for (let i = 3; i < str[0].length; i++) {
					_s += '*';
				}
				new_email = str[0].substr(0, 3) + _s + '@' + com[0].substr(0, 1) + _c + '.'  + com[1];
			} else { //@前面小于等于于3位
				for (let i = 1; i < str[0].length; i++) {
					_s += '*'
				}
				new_email = str[0].substr(0, 1) + _s + '@' + com[0].substr(0, 1) + _c + '.' + com[1];
			};
			return new_email;
		}else{
			return email
		}
		
		// return text
		// return text.replace(/(?<=.{2}).+(?=.{2}@)|(?<=@.{1}).+(?=\..*)/g,va=>'*'.repeat(va.length))
	},
	// 手机号转*
	hideMobile(text) {
		return text.substring(0, 3) + '****' + text.substring(7, 11);
	},
}